Presentation hierarchy in a notification user interface

ABSTRACT

A computing device is described that receives one or more notifications, categorizes, each of the one or more notifications as either: important and ongoing, person-to-person, or regular, by-the-way, and groups the one or more notifications according to category. The computing device receives a user input for displaying a notification area of a graphical user interface and displays the notification area such that: by-the-way notifications are displayed least prominent, regular notifications are displayed more prominent than the by-the-way notifications, person-to-person notifications are displayed more prominent in than regular notifications, and important and ongoing notifications are displayed more prominently than person-to-person notifications. Appropriate categorization of notifications may provide a user with information relating to underlying operation of the computing device, and may for example immediately indicate the significance of one or more notifications to that operation.

BACKGROUND

Some applications or services may generate “notifications” for alertinga user to new or interesting information for a variety of reasons. Acomputing device may display graphical indications of notificationsreceived from applications executing at, or services accessible to, thecomputing device, in among other ways, as notification messages in anotification area of a graphical user interface (e.g., a notificationpane, a notification window, a notification shade) and/or as“notification badges”. Each notification message contained in anotification area may be made up of one or more graphical elements(e.g., icons, actionable elements), text (e.g., a title, detailedinformation), and/or other contents. Instead of being displayed in anotification area, a notification badge is typically shown as agraphical element overlapping or adjacent to a launch icon and indicatesa total quantity of notifications currently pending (e.g., unviewed,unheard, unfelt, or otherwise not cleared) for the particularapplication or service associated with the launch icon. Some computingdevices receive a large quantity of notifications—as such, their display(whether as multiple messages in a notification area and/or as multiplenotification badges) may cause unwanted confusion, clutter, orannoyance.

SUMMARY

In general techniques of this disclosure are directed managingnotifications and outputting indications of notifications as part of agraphical user interface (GUI) of a computing device. A computing devicemay receive notification data (referred to herein simply as a“notification”) generated by an application executing at, or a serviceaccessible to, the computing device (otherwise referred to herein as “anotification source”). When the computing device receives anotification, the computing device may process the notification anddisplay a graphical indication of the underlying notification as part ofa GUI of the computing device.

The graphical indication of the notification may take the form of anotification badge displayed adjacent to, or as part of, a launch iconof an application or service that generated the notification. However,unlike a typical notification badge that merely indicates a totalquantity of notifications currently pending for the application orservice that is associated with the launch icon, the examplenotification badge may reflect content of the pending notification(s).For example, if a notification is for alerting a user of the computingdevice to a message from a particular sender, the badge icon may be agraphic (e.g., icon) or image associated with the particular sender. Theuser may be further informed of the consequences of interactions withthe computing device such that a decision can be made in light ofknowledge otherwise not available to the user. Accordingly, inreflecting content of the notification, the badge icon may facilitateefficient interaction with the computing device by resolving one or moreambiguities that would otherwise arise. A reduction in the processingload on the device may thereby be achieved. Displaying notificationbadges that reflect the content of pending notifications may reduceanxiety and/or confusion some users may have from seeing other types ofnotification badges.

After displaying a notification badge at or near a particular launchicon, the computing device may detect a user input that selects theparticular launch icon. While one type of user input (e.g., a tap input)that selects the particular launch icon may cause the computing deviceto execute the application or access the service associated with thelaunch icon, a different type of user input (e.g., a long press) thatselects the particular launch icon may cause the computing device todisplay (e.g., near the launch icon being selected) a message preview ofone or more of the individual notifications associated with thenotification badge. For example, if the computing device receivesmultiple notifications for alerting a user of the computing device tomultiple messages received from multiple senders, the computing devicemay cause the message preview to include a respective notificationmessage for each of the multiple notifications, where each notificationmessage may include one or more graphical elements (e.g., icons,actionable elements), text (e.g., a title, detailed information), and/orother contents displayed within the message preview. A user may be ableto more quickly interact with a particular notification message from themessage preview in a similar way that he or she may interact with anotification message when the notification message is displayed in anotification area of the GUI.

The computing device may display a graphical indication of anotification as a notification message in a notification area of theGUI. The notification area may be a notification pane, notificationwindow, or notification shade that shows notification messages for eachnotification received by the computing device that has not yet beenviewed, read, heard, or otherwise cleared.

To improve usability and reduce interaction time between a user and thenotification area, or otherwise promote more efficient user interactionswith notifications, the computing device may categorize notificationsand display notification messages of the notifications in a ranked orderof categorical-importance that is tied to how notification messages areto be presented when presented in a notification pane or othernotification area of a GUI. For example, the computing device maycategorize a notification as being either: an important and ongoing typenotification, a person-to-person type notification, a regular typenotification, a “by-the-way” type notification, or a systeminformational notification and then display graphical indications of thenotifications in accordance with their categorical-importance.

The notification area may be divided into multiple sections where eachsection is associated with a particular category. The computing devicemay display notifications that have a higher-rankedcategorical-importance in a more prominently displayed section of thenotification area (e.g., in a top-section or a foreground section) andthe computing device may display notifications that have a lower-rankedcategorical-importance in less prominently displayed sections of thenotification area (e.g., in bottom-sections or background sections). Forexample, if the notification area is a notification shade that unfurlsfrom an upper edge of the GUI (e.g., a status bar) when brought intoview, the computing device may display important and ongoing typenotifications in a most prominent section of the notification shade(e.g., the upper-most area), person-to-person type notifications in anext most prominent section of the notification shade (e.g., the secondto upper-most area), regular type notifications in a middle section ofthe notification shade, “by-the-way” type notifications in anext-to-least prominent section of the notification shade (e.g., thesecond to lower-most area), and system informational notifications in aleast prominent section of the notification shade (e.g., the lower-mostarea). Appropriate categorization of notifications may provide a userwith information relating to underlying operation of the computingdevice, and may for example immediately indicate the significance of oneor more notifications to that operation.

Each notification source may generate various types of notifications andthe computing device may manage the notifications using notificationchannels. That is to enable an application or service to define its ownclassification, prioritization, and settings for its different types ofnotifications, the computing device may enable an application or serviceto define one or more “channels”. Each channel may have a respectivelabel, alert setting(s) (e.g., sound, vibration, banner, etc.),prioritization level, channel graphic, and other parameters. Upongenerating a notification, the application or service may assign thatnotification to a particular channel. Accordingly, a user may beprovided with an indication of the manner in which a given notificationis being handled by the computing device. This may provide furtherinformation on the notification itself and allow efficient interactionin light of the knowledge thereby provided. A notification settings menuof the GUI may enable user control over some or all of the notificationparameters (e.g., prioritization, alert settings, and the like) for aparticular channel and may further enable user control over how thecomputing device uses and/or stores personal information that may beassociated with the notifications so that the personal informationremains private or is not stored at all.

Unlike other computing devices that may simply output all notificationsfrom a particular application or service using the same label, alertsetting, and prioritization level, the computing device may insteadoutput notifications from an application or service using the label,alert setting, and prioritization level of the channel in which eachnotification belongs. In this way, as an application or service generatenotifications for a variety of reasons, the application or service mayhave finer control over how its different types of notifications getgrouped and/or output as part of the GUI of the computing device.

To further improve usability and reduce interaction time between a userand a notification area, the computing device may display an individualnotification graphical element (e.g., a channel graphic, a notificationicon, a badge icon, or other graphic or image) for each pendingnotification or group of pending notifications, in a status bar regionof the GUI or other designated region of the GUI. The graphical elementmay correspond to a category of notification, a channel, and/or otherattribute of the notification.

For example, the notification area may be a notification shade thatappears collapsed behind a status bar region of the GUI when hidden fromview and appears to expand from behind the status bar region when pulledinto view. When collapsed, the computing device may display anindividual graphical element for each pending notification in the statusbar region. As the notification shade expands, the computing device mayanimate the graphical elements and cause the graphical elements toappear to move with the leading edge of the notification shade as theshade comes into view from behind the status bar. As an individualnotification message within the notification shade comes into view, thecomputing device may further animate the respective graphical elementthat is tied to the notification associated with the individualnotification message to move from the leading edge region of thenotification shade to the area of the notification shade in which thenotification message is displayed. In this way, when the notificationarea is collapsed, the computing device provides graphical elements in astatus bar region as an indication of the quantity and type of pendingnotifications. As the notification area is expanded, the computingdevice, through the display of the graphical elements in the leadingedge region, provides an indication of the quantity and type of pendingnotifications that are associated with notification messages that haveyet to be displayed in the notification area. In this manner,interaction with the notification area may be more efficient, as duringa process of expanding or contracting this area, the user may beinformed the underlying state of the set of pending notifications as awhole. For example, a user may be provided with information indicatingwhether further expansion of the notification area is required. In somecircumstances, the user may be provided with an indication of the typeof notifications not yet displayed in the notification area to allowappropriate decision making. Furthermore, animation may be used todemonstrate the logical connection between the graphical elements andthe notification area. By reducing interactions necessary to discoverinformation about the system, a reduced load may be placed on thecomputing device.

By managing notifications and outputting indications of notifications aspart of a GUI in this way, an example computing device may improve theusability of the GUI, reduce interaction time between a user and the GUIwhen interacting with notifications, and promote more efficient userinteractions with notifications. Better usability, reduced interactiontime, and more efficient user inputs, an example computing device mayreceive fewer false inputs or fewer inputs in general than othercomputing devices that do not manage and output notifications in thisway. The example computing device may therefore perform fewer operationsand may consume less electrical power and/or result in battery powersavings. In addition, the example computing device may provide a lessfrustrating more enjoyable user experience.

In one example, a method is described that includes receiving, by acomputing device, one or more notifications; assigning, by the computingdevice, each of the one or more notifications to a respective categoryfrom a set of categories, the set of categories including an importantand ongoing category, a person-to-person category, a regular category,and a by-the-way category; grouping, by the computing device, the one ormore notifications according to the respective categories assigned tothe one or more notifications; receiving, by the computing device, auser input for displaying a notification area of a graphical userinterface; and displaying, by the computing device, the notificationarea such that: notification messages for the one or more notificationsassigned to the by-the-way category are displayed least prominently inthe notification area relative to other notification messages for any ofthe one or more notifications assigned to other categories, notificationmessages for the one or more notifications assigned to the regularcategory are displayed more prominently in the notification area thanthe notification messages for the one or more notifications assigned tothe by-the-way category, notification messages for the one or morenotifications assigned to the person-to-person category are displayedmore prominently in the notification area than the notification messagesfor the one or more notifications assigned to the regular category, andnotification messages for the one or more notifications assigned to theimportant and ongoing category are displayed more prominently in thenotification area than the notification messages for the one or morenotifications assigned to the person-to-person category.

In another example, a computer program product and/or computer-readablestorage medium is described that includes instructions, that whenexecuted, cause at least one processor of a computing device to receiveone or more notifications; assign each of the one or more notificationsto a respective category from a set of categories, the set of categoriesincluding an important and ongoing category, a person-to-personcategory, a regular category, and a by-the-way category; group the oneor more notifications according to the respective categories assigned tothe one or more notifications; receive a user input for displaying anotification area of a graphical user interface; and output, fordisplay, the notification area such that: notification messages for theone or more notifications assigned to the by-the-way category aredisplayed least prominently in the notification area relative to othernotification messages for any of the one or more notifications assignedto other categories, notification messages for the one or morenotifications assigned to the regular category are displayed moreprominently in the notification area than the notification messages forthe one or more notifications assigned to the by-the-way category,notification messages for the one or more notifications assigned to theperson-to-person category are displayed more prominently in thenotification area than the notification messages for the one or morenotifications assigned to the regular category, and notificationmessages for the one or more notifications assigned to the important andongoing category are displayed more prominently in the notification areathan the notification messages for the one or more notificationsassigned to the person-to-person category.

In another example, a computing device is described that includes atleast one processor configured to: receive one or more notifications;assign each of the one or more notifications to a respective categoryfrom a set of categories, the set of categories including an importantand ongoing category, a person-to-person category, a regular category,and a by-the-way category; group the one or more notifications accordingto the respective categories assigned to the one or more notifications;receive a user input for displaying a notification area of a graphicaluser interface; and output, for display, the notification area suchthat: notification messages for the one or more notifications assignedto the by-the-way category are displayed least prominently in thenotification area relative to other notification messages for any of theone or more notifications assigned to other categories, notificationmessages for the one or more notifications assigned to the regularcategory are displayed more prominently in the notification area thanthe notification messages for the one or more notifications assigned tothe by-the-way category, notification messages for the one or morenotifications assigned to the person-to-person category are displayedmore prominently in the notification area than the notification messagesfor the one or more notifications assigned to the regular category, andnotification messages for the one or more notifications assigned to theimportant and ongoing category are displayed more prominently in thenotification area than the notification messages for the one or morenotifications assigned to the person-to-person category.

In another example, a system is described that includes means forreceiving one or more notifications; means for assigning each of the oneor more notifications to a respective category from a set of categories,the set of categories including an important and ongoing category, aperson-to-person category, a regular category, and a by-the-waycategory; means for grouping the one or more notifications according tothe respective categories assigned to the one or more notifications;means for receiving a user input for displaying a notification area of agraphical user interface; and means for displaying the notification areasuch that: notification messages for the one or more notificationsassigned to the by-the-way category are displayed least prominently inthe notification area relative to other notification messages for any ofthe one or more notifications assigned to other categories, notificationmessages for the one or more notifications assigned to the regularcategory are displayed more prominently in the notification area thanthe notification messages for the one or more notifications assigned tothe by-the-way category, notification messages for the one or morenotifications assigned to the person-to-person category are displayedmore prominently in the notification area than the notification messagesfor the one or more notifications assigned to the regular category, andnotification messages for the one or more notifications assigned to theimportant and ongoing category are displayed more prominently in thenotification area than the notification messages for the one or morenotifications assigned to the person-to-person category.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages of the disclosure will be apparent from the description anddrawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example computing deviceconfigured to handle notifications and output indications ofnotifications as part of a graphical user interface, in accordance withone or more aspects of the present disclosure.

FIG. 2 is a block diagram illustrating an example computing device thatis configured to handle notifications and output indications ofnotifications as part of a graphical user interface, in accordance withone or more aspects of the present disclosure.

FIG. 3A is a conceptual diagram illustrating an example graphical userinterface presented by an example computing device that is configured todisplay notification badges and notification previews, in accordancewith one or more aspects of the present disclosure.

FIG. 3B is a conceptual diagram illustrating example notification badgesfrom the example graphical user interface of FIG. 3A, in accordance withone or more aspects of the present disclosure.

FIG. 4 is a flowchart illustrating example operations performed by anexample computing device that is configured to display notificationbadges and notification previews, in accordance with one or more aspectsof the present disclosure.

FIG. 5 is a conceptual diagram illustrating an example graphical userinterface presented by an example computing device that is configured tocategorize and display notification messages according to a categoricalorder, in accordance with one or more aspects of the present disclosure.

FIG. 6 is a flowchart illustrating example operations performed by anexample computing device that is configured to categorize and displaynotification messages according to a categorical order, in accordancewith one or more aspects of the present disclosure.

FIG. 7 is a conceptual diagram illustrating an example graphical userinterface presented by an example computing device that is configured toenable notification sources to define one or more notification channels,in accordance with one or more aspects of the present disclosure.

FIG. 8 is a flowchart illustrating example operations performed by anexample computing device that is configured to enable notificationsources to define one or more notification channels, in accordance withone or more aspects of the present disclosure.

FIGS. 9A through 9F are conceptual diagrams illustrating examplegraphical user interfaces presented by an example computing device thatis configured to display notification graphical elements within anotification area of a graphical user interface, in accordance with oneor more aspects of the present disclosure.

FIGS. 10A and 10B are flowcharts illustrating example operationsperformed by an example computing device that is configured to displaynotification graphical elements within a notification area of agraphical user interface, in accordance with one or more aspects of thepresent disclosure.

DETAILED DESCRIPTION

FIG. 1 is a conceptual diagram illustrating an example computing deviceconfigured to group notifications and output indications ofnotifications as part of a graphical user interface, in accordance withone or more aspects of the present disclosure. In the example of FIG. 1,computing device 110 represents an individual mobile or non-mobilecomputing device. Examples of computing device 110 include a mobilephone, a tablet computer, a laptop computer, a desktop computer, aserver, a mainframe, a set-top box, a television, a wearable device(e.g., a computerized watch, computerized eyewear, computerized gloves,etc.), a home automation device or system (e.g., an intelligentthermostat or home assistant device), a personal digital assistants(PDA), a gaming system, a media player, an e-book reader, a mobiletelevision platform, an automobile navigation or infotainment system, orany other type of mobile, non-mobile, wearable, and non-wearablecomputing device configured to receive, and output an indication (e.g.,audible alert, visual alert, haptic alert, voice alert, or other type ofindication) of, notification data.

Computing device 110 includes user interface component (“UIC”) 112, userinterface (“UP”) module 120, and notification module 122. Modules 120and 122 may perform operations described herein using software,hardware, firmware, or a mixture of hardware, software, and firmwareresiding in and/or executing at computing device 110. Computing device110 may execute modules 120 and 122 with multiple processors or multipledevices, as virtual machines executing on underlying hardware, as one ormore services of an operating system or computing platform, and/or asone or more executable programs at an application layer of a computingplatform of computing device 110.

UIC 112 of computing device 110 may function as an input and/or outputdevice for computing device 110. UIC 112 may be implemented usingvarious technologies. For instance, UIC 112 may function as an inputdevice using presence-sensitive input screens, microphone technologies,infrared sensor technologies, or other input device technology for usein receiving user input. UIC 112 may function as output deviceconfigured to present output to a user using any one or more displaydevices, speaker technologies, haptic feedback technologies, or otheroutput device technology for use in outputting information to a user.

UIC 112 may detect input (e.g., touch and non-touch input) from a userof computing device 110. UIC 112 may detect indications of input bydetecting one or more gestures performed by a user (e.g., the usertouching, pointing, and/or swiping at or near one or more locations ofUIC 112 with a finger or a stylus pen). UIC 112 may output informationto a user in the form of a user interface (e.g., user interface 113),which may be associated with functionality provided by computing device110.

Notification module 122 may perform functions associated with receiving,managing, and otherwise handling at least a portion of the notificationdata generated and/or received by platforms, applications, and servicesexecuting at, or in communication with, computing device 110. As usedthroughout the disclosure, the terms “notification” and “notificationdata” are used to describe various types of information that mayindicate the occurrence of an event within an execution environment(e.g., that includes platforms, applications, and services executing at,or in communication with, computing device 110) computing device 110.For example, a notification may include, but is not limited to,information specifying an event such as: the receipt of a communicationmessage (e.g., e-mail, instant message, text message, etc.) by amessaging account associated with computing device 110, the receipt ofinformation by a social networking account associated with computingdevice 110, a reminder of a calendar event (meetings, appointments,etc.) associated with a calendar account of computer device 110,information generated and/or received by a third-party applicationexecuting at or in communication with computing device 110, thetransmittal and/or receipt of inter-component communications between twoor more components of platforms, applications, and/or services executingat computing device 110, or any other information that may interest auser.

Notification module 122 may process notifications as computing device110 receives the notifications from any device, server, or service,executing at or in communication with computing device 110 and maydistribute portions of the notifications to other modules, applications,and/or services executing at or in communication with computing device110. For example, notification module 122 may receive notification datafrom a mobile phone or a computerized watch that is paired via a networkconnection with computing device 110. The notification data may includeinformation about an event (e.g., a reminder about a movie showing thata user of computing device 110 has purchased tickets to) from a calendarapplication executing at the mobile phone or computerized watch. Inresponse to receiving the notification data, notification module 122 maysend at least a portion of the notification data to UI module 120 alongwith other information that UI module 120 uses to determine how to causeUIC 112 to display a graphical indication or alert indicative of thenotification data.

In some examples, notification module 122 may implement a notificationqueue for processing notifications. Notification module 122 may placereceived notification data into the notification queue in a particularorder (e.g., first-in-first-out, last-in-first-out, etc.). Notificationmodule 122 may give other applications, services, modules, or platformsexecuting at computing device 110 access to the notification queue. Inthis way, notification module 122 need only provide a location in memoryto the notification queue and the other applications, services,platforms, or modules executing at computing device 110 can accessincoming notification data directly. For example, UI module 120 mayreceive a pointer from notification client module 122 indicating thelocation of notification queue in a memory of computing device 110. UImodule 120 may retrieve and analyze the notification data in thenotification queue to create various aspects of user interface 113.

Notification module 122 may categorize notifications and ranknotifications in a ranked order of categorical-importance. For example,notification module 122 may analyze metadata of a notificationindicating one or more of: a title, content, a photo, an avatar, anotification icon, a notification source (e.g., the application orservice that generated the notification), a sender, a time of receipt, atime of expiration, a priority level, a type, and the like. Notificationmodule 122 may input at least a portion of metadata of a notificationinto a model (e.g., rules-based, machine-learning, or other type ofmodel) for categorizing the notification as being either: an importantand ongoing type notification (e.g., media, a telephone or video call inprogress, navigation instructions, screen sharing, timers, alarms,meeting reminders, etc.), a person-to-person type notification (e.g., atext message, e-mail message, chat message, missed telephone or videocall, voicemail, etc.), a “by-the-way” type notification (e.g., apromotion, a content suggestion, etc.), a system informationalnotification (e.g., network connection status, battery status,peripheral connection status, an indication of whether an application isexecuting in the background, a message received from an integratedmessaging platform configured to display and enable interactions withincoming messages regardless of the application that is currentlyexecuting in the foreground of user interface 113, or other systemalert), or a regular type notification (e.g., anything other type ofnotification that does not fit into one of the other categoriesmentioned previously).

In cases where notification module 122 or any other part of computingdevice 110 stores or makes use of personal information associated withthe user of computing device 110, notification module 122 or any otherpart of computing device 110 may only store or make use of the personalinformation after receiving explicit consent from the user to do so(e.g., by a menu setting, or obtaining consent in other form). Computingdevice 110 may encrypt or otherwise treat any personal information beinganalyzed and/or stored to remove the actual identity of the user beforestoring or making use of the personal. For example, the information maybe treated by notification module 122 so that anypersonally-identifiable information is removed when received from anotification source and stored for later processing.

Some notification sources may generate notifications for a variety ofreasons. To enable a notification source to define its ownclassification, prioritization, and settings for its different types ofnotifications, notification module 122 may enable a notification sourceto to define one or more “channels” associated with the notificationsource. Each channel is unique to the notification source and may have arespective label, alert setting(s) (e.g., sound, vibration, banner,etc.), prioritization level, channel graphic, and other parameters. Upongenerating a notification, the notification source may assign thatnotification to a particular one of its channels. Notification module122 may handle the notification according to the parameters associatedwith its channel.

Notification module 122 may enable user control and customization oversome or all notification parameters (e.g., prioritization, alertsettings, and the like) for notifications according to thenotification's source. Notification module 122 may further enable usercontrol and customization over some or all notification parameters fornotifications according to the notification's channel.

In general, UI module 120 may manage the interactions with, and controlthe display of, user interfaces (e.g., user interface 113) beingpresented at UIC 112. For example, UI module 120 may receive information(e.g., notification data) and/or instructions from various sources(e.g., one or more system platforms, operating systems, applications,modules, and/or services executing at or in communication with computingdevice 110) for generating user interface 113 and elements thereof. Inresponse, UI module 120 may output instructions and information to UIC112 to cause UIC 112 to display user interface 113. In addition, UImodule 120 may receive information from UIC 112 in response to inputsdetected by UIC 112 at locations at which elements of user interface 113are displayed; and disseminate information about the inputs to variousdestinations (e.g., one or more system platforms, operating systems,applications, modules, and/or services executing at or in communicationwith computing device 110) for interpreting the inputs and for causingcomputing device 110 to perform one or more functions. In some examples,UI module 120 may receive explicit instructions from a source forgenerating a user interface that is displayed by UIC 112. However, inother cases, UI module 120 may receive other information (e.g.,notification data) and automatically generate a user interface that isdisplayed by UIC 112 based on the other information. UI module 120 mayautomatically generate, from notification data obtained by notificationmodule 122, elements of user interface 113.

User interface 113 represents a graphical user interface from which auser of computing device 110 can interact with computing device 110, forexample, to launch applications executing at or access servicesaccessible to computing device 110, adjust settings associated withcomputing device 110, or to view graphical indications of notificationgenerated by computing device 110 and/or the applications executing at,or services accessible to, computing device 110. User interface 113includes status bar 114A, application screen 114B, favorites region114C, and notification area 115. User interface 113 of FIG. 1 is onlyone example of a graphical user interface, and many other examples ofuser interface 113 exist that include additional or fewer features thanthose shown in FIG. 1.

Status bar 114A (also sometimes referred to as “an energy bar”) is agraphical element of user interface 113 that includes time and dateinformation, as well as status icons and other icons from which a usercan observe the current state of various system level features ofcomputing device 110. For example, status bar 114A includes variousnetwork connectivity icons, a battery level icon, and the like.

Application screen 114B is a page or screen of user interface 113 fromwhich a user can launch or otherwise interact with the applicationsexecuting at, or services accessible to, computing device 110.Application screen 114B may be a home screen that included widgets,launch icons, a background image, or other features. Application screen114B may include multiple pages or screens. Application screen 114B maybe any type of user interface screen associated with an application orservice that is executing at computing device 110. In the example ofFIG. 1, application screen 114B is a home screen of the operatingplatform of computing device 110 and includes various launch icons, suchas launch icon 118, that if selected (e.g., in response to user inputbeing detected by UIC 112 at a location of UIC 112 at which a particularlaunch icon is displayed) may cause computing device 110 to execute aparticular application or service associated with that particular launchicon.

Favorites region 114C is another region of user interface 113 from whicha user can launch the applications executing at, or services accessibleto, computing device 110. Favorites region 114C may include a subset ofthe launch icons that are accessible from application screen 114B ofFIG. 1. Favorites region 114C may be customizable by a user and mayinclude one or more launch icons of the most frequently accessedapplications executing at, or services accessible to, computing device110.

Whether a launch icon is displayed on application screen 114B or infavorites region 114C, the launch icon may include a notification badge,such as notification badge 119. Badge icons 119, while shown atdifferent locations that partially overlap application icon 118, may allbe positioned in the same relative location with respect to eachapplication icon 118. Notification module 122 may receive a notificationgenerated by an application executing at, or a service accessible to,computing device 110 and after processing the notification, sendnotification data and other information to UI module 120 that causes UImodule 120 to display at UIC 112, a graphical indication of thenotification as a notification badge displayed adjacent to, or as partof, a launch icon of an application or service that generated thenotification. For example, notification module 122 may receive anotification generated by the application or service associated withlaunch icon 118 and cause UI module 120 to update the display of userinterface 113 at UIC 112 so as to include notification badge 119adjacent to launch icon 118 to alert a user of computing device 110 tothe notification generated by the application or service associated withlaunch icon 118.

Notification area 115 is a region of user interface 113 that isconfigured to display graphical indications of notifications asnotification messages, such as notification message 116, andnotification graphical elements (e.g., channel graphics, notificationicons, badge icons, or other graphics or images), such as notificationicon 117. Notification area 115 may be a solid, opaque, or semi-opaquenotification pane, notification window, or notification shade that showsnotification messages and/or notification graphical elements for eachnotification received by notification module 122 that has not yet beenviewed, read, heard, or otherwise cleared. For example, if notificationmodule 122 receives a notification, notification module 122 and UImodule 120 may cause notification area 115 to include notificationmessage 116 which may include one or more graphical elements (e.g.,icons, actionable elements, avatars, etc.), text (e.g., a notificationsource, a title, content, or other information), and/or other contentsdisplayed within the message preview.

A user may interact with a particular notification message fromnotification area 115 by providing input at or near a location at whichthe notification message is displayed by UIC 112. For example, UI module120 may cause notification message 116 to appear to expand from acollapsed to expanded state when displayed by UIC 112 to show a greateramount of information in response to UIC 112 detecting a gesture inputat or near a location of UIC 112 at which the notification message 116is displayed.

In the example of FIG. 1, notification area 115 is a notification shadethat appears collapsed behind status bar 114A when notification area 115is hidden from view and appears to expand in-front-of application screen114B when pulled and expanded into view. For example, in response todetecting user input 106 (shown in FIG. 1 as a drag down gesture beingperformed by a stylus or finger at or near a location of UIC 112 atwhich user interface 113 is displayed), UI module 120 may cause thedisplay of notification area 115 at UIC 112 to appear to unfurl frombehind status bar 114A and increase in size in an amount that isproportionate to the length of user input 106. As UI module 120 causesnotification area 115 to appear to expand while being displayed by UIC112, the notification messages contained within notification area 115may become visible from behind status bar 114A.

In some examples, when UI module 120 causes notification area 115 toappear hidden, or collapsed, behind status bar 114A, UI module 120 maycause UIC 112 to include a notification graphical element, such asnotification graphical element 117, within status bar 114A for eachpending notification received by notification module 122. As UI module120 causes notification area 115A to appear to expand from beneathstatus bar 114A, UI module 120 may cause UIC 112 to animate thenotification graphical elements previously displayed within status bar114A by causing the notification graphical elements to move with theleading edge of notification area 115 as notification area 115 comesinto view from behind status bar 114A. As each notification messagewithin notification area 115 comes into view at UIC 112, UI module 120may cause UIC 112 to display the notification graphical element, such asgraphical element 117, that is displayed within the leading edge regionof notification area 115 and corresponds to that notification message,to be displayed as animating from the leading edge region ofnotification area 115 and into the notification message. In this way,when notification area 115 is collapsed, UI module 120 causes UIC 112 todisplay notification graphical elements in status bar region 114A as anindication of the quantity and type of pending notifications. Asnotification area 115 is expanded, UI module 120, through the display ofthe notification graphical elements, such as element 117, in the leadingedge region of notification area 115, provides an indication of thequantity and type of pending notifications that are associated withnotification messages that have yet to be displayed (or are stillcollapsed behind status bar 114A) in notification area 115.

FIG. 2 is a block diagram illustrating an example computing device thatis configured to handle notifications and output indications ofnotifications as part of a graphical user interface, in accordance withone or more aspects of the present disclosure. Computing device 210 ofFIG. 2 is described below as an example of computing device 110 ofFIG. 1. FIG. 2 illustrates only one particular example of computingdevice 210, and many other examples of computing device 210 may be usedin other instances and may include a subset of the components includedin example computing device 210 or may include additional components notshown in FIG. 2.

As shown in the example of FIG. 2, computing device 210 includes userinterface component (UIC) 212, one or more processors 240, one or morecommunication units 242, one or more input components 244, one or moreoutput components 246, and one or more storage components 248. UIC 212includes output component 202 and input component 204. Storagecomponents 248 of computing device 210 includes notification queue 232,application modules 230A-230N (collectively “application modules 230”)and operating platform 228 which includes notification module 222 and UImodule 120. Notification module 222 includes categorization module 224and channel module 226.

Communication channels 250 may interconnect each of the components 212,240, 242, 244, 246, and 248 for inter-component communications(physically, communicatively, and/or operatively). In some examples,communication channels 250 may include a system bus, a networkconnection, an inter-process communication data structure, or any othermethod for communicating data.

One or more communication units 242 of computing device 210 maycommunicate with external devices via one or more wired and/or wirelessnetworks by transmitting and/or receiving network signals on the one ormore networks. Examples of communication units 242 include a networkinterface card (e.g. such as an Ethernet card), an optical transceiver,a radio frequency transceiver, a GPS receiver, or any other type ofdevice that can send and/or receive information. Other examples ofcommunication units 242 may include short wave radios, cellular dataradios, wireless network radios, as well as universal serial bus (USB)controllers.

One or more input components 244 of computing device 210 may receiveinput. Examples of input are tactile, audio, and video input. Inputcomponents 242 of computing device 210, in one example, includes apresence-sensitive input device (e.g., a touch sensitive screen, a PSD),mouse, keyboard, voice responsive system, video camera, microphone orany other type of device for detecting input from a human or machine. Insome examples, input components 242 may include one or more sensorcomponents one or more location sensors (GPS components, Wi-Ficomponents, cellular components), one or more temperature sensors, oneor more movement sensors (e.g., accelerometers, gyros), one or morepressure sensors (e.g., barometer), one or more ambient light sensors,and one or more other sensors (e.g., microphone, camera, infraredproximity sensor, hygrometer, and the like). Other sensors may include aheart rate sensor, magnetometer, glucose sensor, hygrometer sensor,olfactory sensor, compass sensor, step counter sensor, to name a fewother non-limiting examples.

One or more output components 246 of computing device 110 may generateoutput. Examples of output are tactile, audio, and video output. Outputcomponents 246 of computing device 210, in one example, includes a PSD,sound card, video graphics adapter card, speaker, cathode ray tube (CRT)monitor, liquid crystal display (LCD), or any other type of device forgenerating output to a human or machine.

UIC 212 of computing device 210 may be similar to UIC 112 of computingdevice 110 and includes output component 202 and input component 204.Output component 202 may be a display component, such as a screen atwhich information is displayed by UIC 212 and input component 204 may bea presence-sensitive input component, such as a touch of capacitivesensor, that detects an object at and/or near output component 202.Output component 202 and input component 204 may be a speaker andmicrophone pair or any other combination of one or more input and outputcomponents, such as input components 244 and output components 244. Inthe example of FIG. 2, UIC 212 may present a user interface (such asuser interface 113 of FIG. 1).

As one example range, presence-sensitive input component 204 may detectan object, such as one or more fingers, a stylus, or one or more otherinputs units that are within two inches or less of output component 202.Input component 204 may determine a location (e.g., an [x, y]coordinate) of output component 202 at which the object was detected. Inanother example range, input component 204 may detect an object sixinches or less from output component 202 and other ranges are alsopossible. Input component 204 may determine the location of outputcomponent 202 selected by a user's finger using capacitive, inductive,and/or optical recognition techniques. In some examples, input component204 also provides output to a user using tactile, audible, or visualstimuli as described with respect to output component 202.

UIC 212 of computing device 210 may detect two-dimensional and/orthree-dimensional gestures as input from a user of computing device 210.For instance, a sensor of UIC 212 may detect a user's movement (e.g.,moving one or more hands, arms, fingers, other body parts, pens,styluses, etc.) within a threshold distance of the sensor of UIC 212.UIC 212 may determine a two- or three-dimensional vector representationof the movement and correlate the vector representation to a gestureinput (e.g., a hand-wave, a pinch, a clap, a pen stroke, etc.) that hasmultiple dimensions. In other words, UIC 212 can detect amulti-dimension gesture without requiring the user to gesture at or neara screen or surface at which UIC 212 outputs information for display.Instead, UIC 212 can detect a multi-dimensional gesture performed at ornear a sensor which may or may not be located near the screen or surfaceat which UIC 212 outputs information for display.

While illustrated as an internal component of computing device 210, UIC212 may also represent an external component that shares a data pathwith computing device 210 for transmitting and/or receiving input andoutput. For instance, in one example, UIC 212 represents a built-incomponent of computing device 210 located within and physicallyconnected to the external packaging of computing device 210 (e.g., ascreen on a mobile phone). In another example, UIC 212 represents anexternal component of computing device 210 located outside andphysically separated from the packaging or housing of computing device210 (e.g., a monitor, a projector, etc. that shares a wired and/orwireless data path with computing device 210).

One or more storage components 248 within computing device 210 may storeinformation for processing during operation of computing device 210(e.g., computing device 210 may store notification queue 232 as well asdata accessed by modules 220, 222, 224, 226, and 230 and operatingplatform 228 during execution at computing device 210). In someexamples, storage component 248 is a temporary memory, meaning that aprimary purpose of storage component 248 is not long-term storage.Storage components 248 on computing device 210 may be configured forshort-term storage of information as volatile memory and therefore notretain stored contents if powered off. Examples of volatile memoriesinclude random access memories (RAM), dynamic random access memories(DRAM), static random access memories (SRAM), and other forms ofvolatile memories known in the art.

Storage components 248, in some examples, also include one or morecomputer-readable storage media. Storage components 248 in some examplesinclude one or more non-transitory computer-readable storage mediums.Storage components 248 may be configured to store larger amounts ofinformation than typically stored by volatile memory. Storage components248 may further be configured for long-term storage of information asnon-volatile memory space and retain information after power on/offcycles. Examples of non-volatile memories include magnetic hard discs,optical discs, floppy discs, flash memories, or forms of electricallyprogrammable memories (EPROM) or electrically erasable and programmable(EEPROM) memories. Storage components 248 may store program instructionsand/or information (e.g., data) associated with notification queue 232,modules 220, 222, 224, 226, and 230, and operating platform 228. Storagecomponents 248 may include a memory configured to store data or otherinformation associated with notification queue 232, modules 220, 222,224, 226, and 230, and operating platform 228.

One or more processors 240 may implement functionality and/or executeinstructions associated with computing device 210. Examples ofprocessors 240 include application processors, display controllers,auxiliary processors, one or more sensor hubs, and any other hardwareconfigure to function as a processor, a processing unit, or a processingdevice. Modules 220, 222, 224, 226, and 230, and operating platform 228may be operable by processors 240 to perform various actions,operations, or functions of computing device 210. For example,processors 240 of computing device 210 may retrieve and executeinstructions stored by storage components 248 that cause processors 240to perform the operations described herein that are attributed tomodules 220, 222, 224, 226, and 230, and operating platform 228. Theinstructions, when executed by processors 240, may cause computingdevice 210 to store information within storage components 248, forexample, at notification queue 232.

Application modules 230 represent any source of notifications executingat computing device 210 or accessible from computing device 210. Forexample, application modules 230 may include messaging applications,social media applications, calendar applications, gaming applications,digital assistant applications, keyboard application, applicationextension, or any other type of applications configured to execute atcomputing device 210. Application modules 230 may be cloud-basedapplications that are accessible from computing device 210 but executeat a remote server in a cloud network environment. Application modules230 may generate notification data received by notification module 222and stored as notifications at notification queue 233.

Notification queue 232 represents any suitable storage medium forstoring and buffering notification data. For instance, notificationqueue 232 may be a queue, stack, or type of data structure for bufferingfor organizing notification data as notification module 222 receives thenotification data, over time. UI module 220 may access notificationqueue 232 and generate elements of a user interface, such as userinterface 113, based on the notification data stored at notificationqueue 232. Notification module 222 may perform read/write operations foradding information to notification queue 232 (e.g., when notificationdata is received) or removing information from notification queue 232(e.g., when a user provided input to dismiss a notification alert,etc.).

Operating platform 228 manages computing resources of computing device212. Also referred to as an operating system, operating platform 228manages the interaction between modules 220, 222, 224, 226, and 230,notification queue 232, and components 202, 204, 212, 240, 242, 244,246, and 248. For example, operating platform 228 may performtime-sharing or scheduling of tasks to ensure that each of modules 220,222, 224, 226, and 230 are allocated a percentage of processor time ofprocessors 240 or may efficiently access the information stored atstorage component 248, or any other of components 202, 204, 212, 242,244, and 246. In other words, operating platform 228 may act as anintermediary between software, hardware, and firmware, executing at oraccessible to computing device 210. In some examples, operating platform228 is the only executable application of computing device 210 thatgenerates, receives, manages, or otherwise handles notification data andthe presentation thereof. For example, rather than rely on multiple,application specific programs or applications, operating platform 228 ofcomputing device 210, using UI module 220 and notification module 222,may control all operations and functions related to notifications andthe presentation of information associated with notification data at UIC212.

Notification module 222 may include all functionality of notificationmodule 122 of computing device 110 of FIG. 1 and may perform similaroperations as notification module 222 for receiving, managing, andotherwise handling at least a portion of the notification data generatedand/or received by platforms, applications, and services executing at,or in communication with, computing device 210. As shown in FIG. 2,notification module 222 may be part of or associated with operatingplatform 228. For example, notification module 222 may be a sub-module,service, or activity of operating platform 228 as opposed to a separatemodule or application of computing device 210.

Notification module 222 may receive notification data (e.g., asinformation obtained by communication units 242 from a differentcomputing device, as information obtained from one of applicationmodules 230, etc.) and store the notification data at notification queue232. Notification module 222 may output portions of the notificationdata it receives to UI module 220 and/or provide access to UI module 220to notification queue 232. For example, notification module 222 mayshare with UI module 220, a memory pointer to a location of notificationqueue 232 within storage component 248 and allow UI module 220 to accessthe data stored at the location (e.g., to automatically generategraphical elements that UI module 220 causes UIC 212 to display as userinterface 113).

Categorization module 224 of notification module 222 may categorizenotifications and rank notifications in a ranked order ofcategorical-importance. For example, notification module 222 may analyzenotification data to determine a title, content, an avatar, anotification icon, a notification source (e.g., the application orservice that generated the notification), a sender, a time of receipt, atime of expiration, a priority level, a type, and other informationabout the notification.

Categorization module 224 may execute a rules-based, machine-learning,or other type of model for categorizing notification data into one ofseveral different categories of importance. The model may be any type ofmachine-learning or artificial intelligence based model that is trained(e.g., based on heuristics and/or past user interaction data associatedwith computing device 210 and other computing devices) to categorize anotification. The model may use heuristics to determine the importanceand category of a notification. For example, the notification source maybe a factor that categorization module 224 uses to gauge anotification's importance of category (e.g., navigational applicationnotifications may be treated more important than application update ornew feature notifications). Whether an application source is running asa foreground process may be a factor for determining a notification'simportance. That is, foreground running application modules 230 may ratehigher or more important than application modules 230 that are executingas background processes.

Categorization module 224 may determine that the most important, orhighest ranking category of importance for a notification is an“important and ongoing” type notification that is typically timesensitive or applicable to a user's current context (e.g., location,time of day, a user's current task, etc.). Examples of “important andongoing” type notifications include: notifications about media (e.g.,games, videos, music, etc.) currently being output by computing device210, a telephone or video calls currently in progress via computingdevice 210, navigation instructions currently being output by computingdevice 210, screen sharing functions of computing device 210, timers oralarms set through computing device 210, calendar or meeting remindersoutput by computing device 210, etc.

Categorization module 224 may determine that the second most important,or next-highest ranking category of importance for a notification is a“person-to-person” type notification that involves some form ofback-and-forth messaging communication between two people or groups ofpeople, other than telephone or video calling. For example,categorization module 224 may determine that notifications relating totext messages, e-mail messages, chat messages, missed telephone or videocalls, voicemails, and the like, are all types of person-to-person typenotifications.

Categorization module 224 may determine that the second least important,or next-lowest ranking category of importance for a notification is a“by-the-way” type notification that is informational, but notnecessarily related to any ongoing communication or current task. Forexample, categorization module 224 may determine that notificationsrelating to promotions, advertisements, and content suggestions are alltypes of by-the-way type notifications.

Categorization module 224 may determine that the second least important,or next-lowest ranking category of importance for a notification is asystem informational notification. Examples of system informationalnotifications include information about software updates (e.g.,operating system updates, application updates, etc.), network connectionstatus, battery status, peripheral connection status, currentlyexecuting application statuses, messages received from integratedmessaging platform configured to display and enable interactions withincoming messages regardless of the application that is currentlyexecuting in the foreground of user interface 113, and other systemalert.

Categorization module 224 may determine that the middle-ranked categoryof importance for a notification is a “regular” type notification.Categorization module 224 may determine that any notification that isnot either an important and ongoing type notification, aperson-to-person type notification, a by-the-way type notification, or asystem informational notification, is a regular type notification thatshould neither be ranked high or low relative to the other types ofnotifications.

Some notification sources may generate notifications for a variety ofreasons. To enable a notification source to define its ownclassification, prioritization, and settings for its different types ofnotifications, channel module 226 of notification module 222 may enableany of application modules 230 to define one or more “channels”associated with the that application module 230. Each channel may beunique to a particular application module 230 and may have a respectivelabel, alert setting(s) (e.g., sound, vibration, banner, etc.),prioritization level, channel graphic, and/or other parameter. Upongenerating a notification, the one of application modules 230 thatgenerated the notification (e.g., application module 230A) may assignthe notification to a particular one of the channels associated withapplication module 230A. Channel module 226 may interpret the channelparameters and cause notification module 222 to handle the notificationaccording to the parameters associated with the channel for applicationmodule 230A.

While notification module 222 may enable user control and customizationover some or all notification parameters (e.g., prioritization, alertsettings, and the like) for notifications according to thenotification's source, channel module 226 may further enable usercontrol and customization over some or all notification parameters fornotifications according to the notification's channel. For example,channel module 226 may manage user inputs detected at a settings page ofa user interface, such as user interface 113, to determine valuesassociated with a channel's parameters.

In cases where notification module 222 or any other part of computingdevice 210 stores or makes use of personal information (e.g.,notification information, communications, contacts, contextualinformation, etc.) associated with the user of computing device 210,notification module 222 or any other part of computing device 210 mayonly store or make use of the personal information after receivingexplicit consent from the user to do so (e.g., by a menu setting, orobtaining consent in other form). Computing device 210 may encrypt orotherwise treat any personal information being analyzed and/or stored toremove the actual identity of the user before storing or making use ofthe personal. For example, the information may be treated bynotification module 222 so that any personally-identifiable informationis removed when received from a notification source and stored for laterprocessing.

Channel module 226 of notification module 222 may provide an applicationprogramming interface (API) from which any of application modules 230may define one or more respective notification channels that areparticular to that application or notification source. That is, channelmodule 226 may provide a mechanism (e.g., an API) by which developers ofone of application modules 230 may provide an indication of the varioustypes of notifications that may be generated by that application module230. Channel module 226 may enable an application module 230 to define achannel during compilation or dynamically (e.g., at run-time).

For example, a social media application may generate promotionalnotifications (e.g., to alert a user to a new feature of the socialmedia service), profile update notifications, incoming messagenotifications, relationship request notifications, or various othertypes of notifications associated with the social media service. Thesocial media application may define a channel via the API provided bychannel module 226 for each type of notification it generates therebyenabling user control over the classification, categorization,prioritization, and settings for each different type of social medianotifications.

UI module 220 may include all functionality of UI module 120 ofcomputing device 110 of FIG. 1 and may perform similar operations as UImodule 120 for managing a user interface (e.g., user interface 113) thatcomputing device 210 provides at UIC 212 for handling input from, andoutput to, a user. For example, UI module 220 may generate instructionsor commands, based on notification data and other information obtainedby notification module 222, to cause UIC 212 to display user interface113 and the elements thereof. As is the case with notification module222, UI module 220 may be part of or associated with operating platform228. For example, UI module 220 may be a sub-module, service, oractivity of operating platform 228 as opposed to a separate module orapplication of computing device 210.

UI module 220 may analyze notification data upon its receipt and storageat notification queue 232 and update (in response to receiving commandsfrom notification module 222), elements of user interface 113 such thatUIC 212 displays graphical indications of the notifications (e.g., asnotification badges, notification messages, or other types of graphicalindications) soon after the notifications are generated and/or received.

FIG. 3A is a conceptual diagram illustrating an example graphical userinterface presented by an example computing device that is configured todisplay notification badges and notification previews, in accordancewith one or more aspects of the present disclosure. FIG. 3A is describedbelow in the context of computing device 210 of FIG. 2.

FIG. 3A illustrates user interface 313 as an example user interface thatmay be displayed by computing device 210. UI module 220 and notificationmodule 222 of computing device 210 may cause UIC 212 to output userinterface 313 for display. User interface 313 includes status bar 314A,application screen 314B, and favorites region 314C. Displayed withinapplication screen 314B, user interface 313 includes launch icon 318which represents a graphical element associated with a notificationsource. Displayed at or near launch icon 318 is notification badge 319.Although shown in the example of FIG. 3A as being displayed withinapplication screen 314B, launch icon 318 and notification badge 319 maybe displayed in favorites region 314C or some other portion of userinterface 313.

A user may provide a first type of user input (e.g. a tap gesture) at ornear a location of UIC 212 at which launch icon 318 is displayed. UImodule 220 may interpret the first type of user input as an input thatselects launch icon 318 to cause computing device 210 to execute theapplication or service associated with launch icon 318. The user mayprovide a second type of user input 306 (e.g. a long-press gesture) ator near a location of UIC 212 at which launch icon 318 is displayed. UImodule 220 may interpret the second type of user input 306 as an inputthat selects launch icon 318 to cause computing device 210 to displaynotification area 315, which in the example of FIG. 3A, is anotification preview window that includes notification messages316A-316D (collectively “notification messages 316”). Each ofnotification messages 316 corresponds to a different pendingnotification that notification module 222 received from the notificationsource associated with launch icon 318.

From notification area 315, a user of computing device 220 may interactwith notification messages 316 the same way that he or she wouldinteract with them if they were being displayed in a notification shade,such as notification area 115 of FIG. 1. For example, a user may providegesture input at or near a location of UIC 212 at which notificationmessage 316D is being displayed to cause notification message 316D toexpand and show more content than notification messages 316A-316C whichare shown in collapsed view. Computing device 210 may enable in-lineactions from notification area 315. Computing device 210 may interpretinputs detected at notification area 315 as corresponding to usercommands to cause computing device 210 to perform an action on anotification that corresponds to any of notification messages 316. Insome examples, computing device 210 may, in response to detecting one ormore inputs, clear the corresponding notification, reply to thecorresponding notification (e.g., if the notification is a messagenotification), mark or save the corresponding notification so that thenotification remains pending, forward the notification, block thenotification, adjust settings of the notification, or any other actionthat may be performed on a notification from a notification area ornotification shade.

In some examples, notification badge 319 may animate into notificationarea 315. That is, UI module 220 may cause notification area 315 toappear to grow or expand from notification badge 319 in response todetecting a long-press gesture at or near a location at which launchicon 318 is displayed. For example, notification area 315 may appear togrow out of launch icon 318 to show notification messages 316 inresponse to a long-press.

FIG. 3B is a conceptual diagram illustrating example notification badgesfrom the example graphical user interface of FIG. 3A, in accordance withone or more aspects of the present disclosure. FIG. 3A is describedbelow in the context of computing device 210 of FIG. 2.

FIG. 3B includes notification badges 319A-319F as example notificationbadges displayed adjacent to, or as part of, launch icon 318. However,unlike a typical notification badge that may be displayed by othercomputing devices, that merely indicate a total quantity ofnotifications currently pending for the application or service that isassociated with the launch icon, notification badges 319-319F includeinformation (e.g., graphical information, text, images, graphics, icons,avatars, etc.) that reflect the content of the pending notifications forwhich the notification badges represent, the category that thenotification is assigned to, and/or the channel that the notification isassociated with.

For example, notification badge 319A includes a messaging icon toindicate that the pending notification(s) associated with launch icon318 are associated with a new message channel of the application orservice that generated the pending notification(s). Notification badge319B includes a person icon to indicate that the pending notification(s)associated with launch icon 318 are person-to-person type notifications(e.g., as categorized by notification module 222). Notification badge319C includes a “like” icon to indicate that the pending notification(s)associated with launch icon 318 are positive feedback notifications.Notification badge 319D includes a birthday cake icon to indicate thatthe pending notification(s) associated with launch icon 318 areassociated with an important and ongoing event reminder notification(e.g., for a friend or family member's birthday). Notification badges319E and 319F include graphical elements associated with persons orusers to indicate that the pending notification(s) associated withlaunch icon 318 are associated with a a particular person or user (e.g.,from an address book of computing device 210) that is a sender of acommunication (e.g., e-mail, chat message, instant message, textmessage, video message, voicemail, or any other type of communicationfrom a sender). For example, badges 319E and 319F may be photos,avatars, or other graphical elements (e.g., images, graphics, stickers,emoji, etc.) indicative of a person or user associated with a pendingnotification.

As shown in FIG. 3B, even though launch icon 318 is associated with asingle application or service, computing device 210 may cause launchicon 318 to have a different types of notification badge, such asnotification badges 319A-319D, that reflects the content, category, orchannel of the pending notification(s). Displaying notification badgesthat reflect the content of pending notifications may minimize anxietyand/or confusion some users may have from seeing other types ofnotification badges.

FIG. 4 is a flowchart illustrating example operations performed by anexample computing device that is configured to display notificationbadges and notification previews, in accordance with one or more aspectsof the present disclosure. FIG. 4 is described below in the context ofcomputing device 210 of FIG. 2.

Computing device 210 may receive a notification (402). Computing device210 may determine content of the notification (404). For example,notification module 222 may receive a notification from application 230Aand store the notification at notification queue 233.

Computing device 210 may determine a badge that reflects the content ofthe notification (406). For example, categorization module 224 maydetermine that the notification is message from a family member about abirthday party and in response, categorize the notification as aperson-to-person type notification and notification module 222 mayassign the notification with a notification badge that looks likenotification badge 319B of FIG. 3B.

Computing device 210 may determine whether any other pendingnotifications are associated with the source of the notification (408).If no other notifications associated with the source of the notificationare currently pending (408, “NO” branch), then computing device 210 maydisplay the badge at or near a graphical element for launching thesource of the notification (412). If, however, other notificationsassociated with the source of the notification are currently pending(408, “YES” branch), then computing device 210 may update the badge toreflect the content of the notification and the other notifications thatare currently pending (410).

For example, notification module 222 may search notification queue 232for other notifications associated with application module 230A. Inresponse to identifying a second pending notification associated withapplication module 230A, notification module 222 may determine anotification badge that reflects the content of both pendingnotifications. The second notification may be an event reminder orcalendar appointment for the birthday party referred to in the messagefrom the family member. Notification module 222 may determine that bothnotifications are related to parties or birthdays and therefore assignthe notifications with a notification badge that looks like notificationbadge 319D of FIG. 3B. In the case that two or more notifications areunrelated, notification module 222 may determine a notification badgethat is generic to the notification source and/or the differentnotificaitons. For example, if notifications are associated with twounrelated messages, notification module 222 may determine thenotification badge to be a generic message badge, rather than a messagerelated to just one or both of the notifications.

Computing device 210 may display the badge at or near a graphicalelement for launching the source of the notification (412). For example,notification module 222 may send instructions to UI module 220 thatcause UI module 220 to display notification badge 319D within userinterface 313 at or near a location of UIC 212 at which launch icon 318is displayed.

Computing device 210 may detect a long press gesture that selects thegraphical element for launching the source of the notification (414).For example, UI module 220 may receive information from UIC 212 thatindicates long-press gesture 306 is being detected at the location ofUIC 212 at which launch icon 318 is displayed.

Computing device 210 may display a notification preview that includes arespective notification message for the notification and each of theother pending notifications (416). For example, rather than launchingthe application or service associated with launch icon 318 in responseto gesture 306 (e.g., as UI module 220 may do if gesture 306 were ashort-press gesture), UI module 220 may cause UIC 212 to displaynotification area 315 including notification messages 316A and 316B thatcorrespond to the two pending notifications generated by applicationmodule 230A.

FIG. 5 is a conceptual diagram illustrating an example graphical userinterface presented by an example computing device that is configured tocategorize and display notification messages according to a categoricalorder, in accordance with one or more aspects of the present disclosure.FIG. 5 is described below in the context of computing device 210 of FIG.2.

FIG. 5 illustrates user interface 513 as an example user interface thatmay be displayed by computing device 210. UI module 220 and notificationmodule 222 of computing device 210 may cause UIC 212 to output userinterface 513 for display. User interface 513 includes status bar 514A,application screen 514B, and favorites region 514C. Overlaid in-front oron-top of application screen 514B, and protruding from beneath statusbar 514A, user interface 513 includes notification area 515 (e.g., anotification pane). Within notification area 515 are notificationmessages 516A-516E. Notification message 516A represents one or morenotification messages of “important and ongoing” notifications.Notification message 516B represents one or more notification messagesof “person-to-person” notifications. Notification message 516Crepresents one or more notification messages of “regular” notifications.Notification message 516D represents one or more notification messagesof “by-the-way” notifications. Notification message 516E represents oneor more notification messages of “system informational” notifications.

Notification module 222 and UI module 220 may cause UIC 212 to displaynotification messages 516 in the order shown in FIG. 5 under the premisethat not all notifications are equally important to users, and thereforeshould not be presented as equal (e.g., in chronological order, etc.).Instead, notification area 515 may allow users to more easily identifyand take action on what's important to them in the moment that they viewnotification area 515. Notification area 515 relies on consistentspatial and visual cues separating different categories ofnotifications, to create better hierarchy within notification area 515.

Computing device 210 displays notification messages 516A for importantand ongoing notifications more prominently than other notificationmessages. That is, notification messages 516A are displayed at the topof notification area 515 so that when notification area 515 is expandedinto view, notification messaged 516A are the first to be displayed.This may allow users to identify and act on what's important to them inthe moment. Developers may enable their applications to gain properprominence for deserving notifications without the effort ofcustomization. Notification module 222 may enable an application toself-designate a notification as being an “important and ongoing”notification.

Computing device 210 displays notification messages 516B for person toperson notifications less prominently than important and ongoingnotifications, but more prominently than other notifications. That is,notification messages 516B are displayed second from the top ofnotification area 515 so that when notification area 515 is expandedinto view, notification messaged 516B are the second to be displayed.This may allow users to identify open conversations with other users andprovide for a quicker way to reply.

Computing device 210 displays notification messages 516D for by-the-waynotifications less prominently than important and ongoing notificationsand less prominently than person-to-person and regular notification, butmore prominently than system informational notifications. That is,notification messages 516B are displayed second from the bottom ofnotification area 515. This may de-emphasize these less importantnotifications so users can focus on other more important notificationsthat more likely care about.

FIG. 6 is a flowchart illustrating example operations performed by anexample computing device that is configured to categorize and displaynotification messages according to a categorical order, in accordancewith one or more aspects of the present disclosure. FIG. 6 is describedbelow in the context of computing device 210 of FIG. 2.

Computing device 210 may receive one or more notifications (602). Forexample, notification module 222 may receive one or more notificationsgenerated by application modules 230.

Computing device 210 may categorize each of the one or morenotifications as either: important and ongoing, person-to-person,regular, by-the-way, or system informational (604). For example, using arule-based model based on heuristics, a machine-learning model, or othertype model, categorization module 224 may categorize each of the one ormore notifications.

Computing device 210 may group the one or more notifications accordingto category (606). For example, notification module 222 may tag orotherwise designate each notification stored at notification queue 232with its respective category.

Computing device 210 may receive a user input for displaying anotification area of a graphical user interface (608). For example, UImodule 220 may receive information from UIC 212 indicating a user ofcomputing device 210 provided an input to display notification area 515of user interface 513.

Computing device 210 may display the notification area such thatnotification messages for the system informational notifications aredisplayed the least prominent, notification messages for the by-the-waynotifications are displayed more prominent than the notificationmessages for the system informational notifications, notificationmessages for the regular notifications are displayed more prominent thanthe notification messages for the by-the-way notifications, notificationmessages for the person-to-person notifications are displayed moreprominent than the notification messages for the regular notifications,and notification messages for the important and ongoing notificationsare displayed more prominently than the notification messages for theperson-to-person notifications (610). For example, UI module 220 mayretrieve the pending notifications stored at notification queue 232 andcause UIC 212 to display the notifications within specific regions ofnotification area 515 that are defined by their category tag. UI module220 may cause notifications tagged with “important and ongoing”designations to be displayed more prominently, and so on and so forthfor each other category of notification.

FIG. 7 is a conceptual diagram illustrating an example graphical userinterface presented by an example computing device that is configured toenable notification sources to define one or more notification channels,in accordance with one or more aspects of the present disclosure. FIG. 7is described below in the context of computing device 210 of FIG. 2.

FIG. 7 illustrates user interface 713 as an example user interface thatmay be displayed by computing device 210. UI module 220 and notificationmodule 222 of computing device 210 may cause UIC 212 to output userinterface 713 for display. User interface 713 is a universal settingsmenu provided by computing device 210 to each notification source.Rather than enable notification sources to have their own uniquelydefined notification settings screen, notification module 222 may causecomputing device 210 to present standardized settings screens for eachnotification source similar to user interface 713. The standardizedsettings screen may enable user control over notification settings for anotification source as a whole or finer level control for individualchannels. That is, a user may provide input at user interface 713 toenable or disable notifications for an entire application source or foreach individual channel defined by the application source. This way,notifications coming from a single notification source can havedifferent attributes or parameters, that are defined by the parametersassigned to the channel for which each notification belongs. Examples ofparameters include color, ringtone, vibration pattern, vibrationintensity, sound attribute, level of importance or priority, icon,graphical element, font, font size, or any other parameter that defineshow an audible, graphical, and/or haptic indication of a notification isoutput. No longer do notification sources have to settle for a commonnotification setting for all their notifications.

FIG. 8 is a flowchart illustrating example operations performed by anexample computing device that is configured to enable notificationsources to define one or more notification channels, in accordance withone or more aspects of the present disclosure. FIG. 8 is described belowin the context of computing device 210 of FIG. 2.

Computing device 210 may receive a notification generated by anotification source (802). For example, notification module 222 mayreceive a notification from application module 230B.

Computing device 210 may determine a set of channels defined by thenotification source, each channel having one or more parameters definedby the notification source (804). For example, prior to generating thenotification, application module 230B may interact with channel module226 via an API to define one or more channels for its notifications.Application module 230B may, through the API, assign values toparameters of each channel and send the values and parameters to channelmodule 226. Channel module 226 may store the channel values andparameters.

Computing device 210 may determine a particular channel from the set ofchannels assigned to the notification (806). For example, notificationmodule 222 may analyze the metadata associated with the notificationfrom application module 230B to determine the particular channel it wasassigned to.

Computing device 210 may determine the one or more parameters of theparticular channel (808). For example, channel module 226 may look upthe one or more parameters of the channel determined from the metadataof the notification.

Computing device 210 may output an indication of the notificationaccording to the one or more parameters of the particular channel (810).For example, notification module 222 may store the notification data atnotification queue 232 along with the one or more parameters of theparticular channel so that when UI module 220 retrieves the notificationfor subsequent output as an indication as part of a user interface, UImodule 220 may cause the indication of the notification to be output andhave the qualities defined by the one or more parameters of theparticular channel.

FIGS. 9A through 9F are a conceptual diagrams illustrating examplegraphical user interfaces presented by an example computing device thatis configured to display notification graphical elements within anotification area of a graphical user interface, in accordance with oneor more aspects of the present disclosure. FIGS. 9A through 9F aredescribed below in the context of computing device 210 of FIG. 2.

FIGS. 9A through 9F illustrate user interface 913 as an example userinterface that may be displayed by computing device 210. UI module 220and notification module 222 of computing device 210 may cause UIC 212 tooutput user interface 913 for display. User interface 913 includesstatus bar 914A, application screen 914B, and favorites region 914C.

FIG. 9A shows notification graphical elements 917A-917D (collectively“notification graphical elements 917”) displayed as a set of graphicalelements within status bar 914A. Each notification graphical element 917within the set of graphical elements corresponds to a pendingnotification or group of pending notifications. A user may provide aswipe gesture 906 to cause computing device 210 to display notificationarea 915.

FIG. 9B shows how notification area 915 (e.g., a notification pane)extends downward from beneath status bar 914A in response to swipegesture 906. FIG. 9B further shows how UI module 220 may cause UIC 212to display the set of graphical elements 917 no longer within status bar914A but instead, within notification area 915A, near a leading edge ofnotification area 915A as notification area 915A comes into view.

Also shown in FIG. 9B, as notification message 916A comes into view,graphical element 917A, from the set of graphical elements 917 displayednear the leading edge of notification area 915, that corresponds to thenotification associated with notification message 916A is removed fromthe set of graphical elements 917 and animated so that it moves intoposition within notification message 916A. This way, a user is cued tothe fact that graphical element 917A corresponds to notification message916A. Also, by counting the remaining graphical elements in the set ofgraphical elements 917, the user can obtain visual confirmation as to aquantity of remaining (unfurled) notification messages remain withinnotification area 91A.

Also shown in FIG. 9C, as the size (e.g., the length) of gesture 906increases, UI module 220 may cause the size (e.g., length) ofnotification area 915 to increase proportionately as well. Asnotification message 916B comes into view, graphical element 917B, fromthe set of graphical elements 917 displayed near the leading edge ofnotification area 915, that corresponds to the notification associatedwith notification message 916B is removed from the set of graphicalelements 917 and animated so that it moves into position withinnotification message 916B.

Also shown in FIGS. 9D and 9E, as the size of gesture 906 increasesfurther, UI module 220 may further increase the size of notificationarea 915. As notification message 916C comes into view in FIG. 9D,graphical element 917C, from the set of graphical elements 917 displayednear the leading edge of notification area 915, that corresponds to thenotification associated with notification message 916C is removed fromthe set of graphical elements 917 and animated so that it moves intoposition within notification message 916C. As notification message 916Dcomes into view in FIG. 9E, graphical element 917D, from the set ofgraphical elements 917 displayed near the leading edge of notificationarea 915, that corresponds to the notification associated withnotification message 916D is removed from the set of graphical elements917 and animated so that it moves into position within notificationmessage 916D.

Finally, as shown in FIG. 9F, with notification area 915 expanded to ismaximum size, each graphical element from the set of graphical elements917 has been removed and positioned within a corresponding notificationmessage 916. It should be understood, the example of FIGS. 9A-9F may becarried out by computing device 210 in reverse. That is, as notificationarea 915 is collapsed, and notification messages that are collapsed fromview and associated with pending notifications, may have theirrespective graphical elements 917 added back to the set of graphicalelements 917 that is displayed at the leading edge of notification area915 until notification area 915 is completely collapsed, at which time,computing device 210 may cause the set of graphical elements 917 toagain be displayed in status bar 914A.

FIGS. 10A and 10B are flowcharts illustrating example operationsperformed by an example computing device that is configured to displaynotification graphical elements within a notification area of agraphical user interface, in accordance with one or more aspects of thepresent disclosure. FIGS. 10A and 10B are described below in the contextof computing device 210 of FIG. 2.

As shown in FIG. 10A, computing device 210 may display a status bar of agraphical user interface comprising a set of graphical elements, eachgraphical element from the set corresponding to a different pendingnotification from a set of pending notifications (1002). For example,computing device 210 may display user interface 913 at UIC 212 includinga set of graphical elements 917.

Computing device 210 may receive a gesture that expands a notificationshade from the status bar (1004). For example, UI module 220 may receivean indication from UIC 212 of gesture 906 being detected at status bar914A. UI module 220 may determine that gesture 906 is a user command toexpand notification area 915.

Computing device 210 may expand the notification shade from the statusbar such that a size of the notification pane is based on a length ofthe gesture and the set of graphical elements is displayed within thenotification pane near a leading edge of the notification pane (1006).For example, UI module 220 may cause UID 212 to increase the length ofnotification area 915 proportionate to an increase in length of gesture906. In this way, UI module 220 may cause a leading edge of notificationarea 915 to follow the input unit that is making gesture 906.

Computing device 210 may determine whether a notification messageassociated with a particular notification from the set of pendingnotifications is newly visible in the notification pane (1008). Forexample, UI module 220 may determine whether any notification messages916 are visible that are associated with any of the graphical elementsfrom the set of graphical elements 917.

In response to determining that no notification messages are newlyvisible (1008, No branch), computing device 210 may proceed to operation1014. However, in response to determining that a notification message isnewly visible (1008, Yes branch), computing device 210 may remove aparticular graphical element from the set of graphical elements that isassociated with the particular notification and cease displaying theparticular graphical element near the leading edge of the notificationpane (1010). Computing device 210 may display the particular graphicalelement from the set of graphical elements that is associated with theparticular notification within the notification message (1012). Forexample, as notification message 916A comes into view as the size ofgesture 906 grows, UI module 220 may cause graphical element 917A tomove from being positioned near a leading edge of notification area 915and into a position within notification message 916A.

Computing device 210 may determine whether the length of the gestureincreased (1014). In response to determining that the length of thegesture increases (1014, Yes branch), computing device 210 may repeatoperations (1006)-(1014). For example, UI module 220 may cause each ofgraphical elements 917 to move from being positioned near the leadingedge of notification area 915 to being positioned within a respectivenotification message 916.

In response to determining that the length of the gesture did notincrease (1014, No branch), computing device 210 may proceed to step “A”which continues with the operations shown in FIG. 10B.

As shown in FIG. 10A, computing device 210 may determine whether thelength of the gesture decreased (1016). In response to determining thatthe length of the gesture did not decrease (1016, No branch), computingdevice 210 may proceed to step “B” which continues with operation 1014of FIG. 10A.

In response to determining that the length of the gesture decreased(1016, Yes branch), computing device 210 may collapse the notificationshade from the status bar such that the size of the notification pane isbased on the length of the gesture (1018). For example, a user mayprovide a gesture similar to gesture 906, but in the opposite direction.So with notification area 915 expanded, gesture 906 may move from theleading edge of notification area 915A back up towards status bar 914Aso as to collapse notification area 915.

Computing device 210 may determine whether any previously visiblenotification messages of any still pending notifications are no longervisible (1020). In response to determining that no previously visiblenotification messages of any still pending notifications are no longervisible (1020, No branch), computing device 210 may proceed to step “B”which continues with operation 1014 of FIG. 10A. For example, if thereare no more pending notifications, UI module 220 need not determinewhether to display any graphical elements of notifications at theleading edge of notification area 915 and eventually status bar 914A.

In response to determining that at least one previously visiblenotification message of a still pending notifications is no longervisible (1020, Yes branch), computing device 210 may add any graphicalelements to the set of graphical elements that are associated with thestill pending notifications that are associated with previously visiblenotification messages that are no longer visible (1022). Computingdevice 210 may display the set of graphical elements within thenotification pane near the leading edge of the notification pane (1024).

For example, as notification area collapsed, UI module 220 repositionany graphical elements 917 that are associated with still pendingnotifications, to move position from being displayed within a respectivenotification message 916 to be displayed at the leading edge ofnotification area 915. When gesture 906 reached status bar 914A, UImodule 220 may cause any graphical elements 917 displayed in the leadingedge of notification area 915 to be displayed within status bar 914A.

Clause 1. A method comprising: receiving, by a computing device, one ormore notifications; categorizing, by the computing device, each of theone or more notifications as either: important and ongoing,person-to-person, regular, by-the-way, or system informational;grouping, by the computing device, the one or more notificationsaccording to category; receiving, by the computing device, a user inputfor displaying a notification area of a graphical user interface; anddisplaying, by the computing device, the notification area such that:notification messages for the system informational notifications aredisplayed least prominent in the notification area relative to othernotification messages that are not for the system informationalnotifications, notification messages for the by-the-way notificationsare displayed more prominent in the notification area than thenotification messages for the system informational notifications,notification messages for the regular notifications are displayed moreprominent in the notification area than the notification messages forthe by-the-way notifications, notification messages for theperson-to-person notifications are displayed more prominent in thenotification area than the notification messages for the regularnotifications, and notification messages for the important and ongoingnotifications are displayed more prominently in the notification areathan the notification messages for the person-to-person notifications.

Clause 2. The method of clause 1, wherein the notification area is anotification shade, and displaying the notification area comprisesexpanding the notification shade such that, while expanding thenotification shade, the notification messages for the important andongoing notifications are displayed before all other notificationmessages that are not for the important and ongoing notifications.

Clause 3. The method of clause 2, wherein displaying the notificationarea further comprises expanding the notification shade such that, whileexpanding the notification shade, the notification messages theperson-to-person notifications are displayed after the notificationmessages for the important and ongoing notifications, the notificationmessages for the regular notifications are displayed after thenotification messages the person-to-person notifications, thenotification messages for the by-the-way notifications are displayedafter the notification messages for the regular notifications, and thenotification messages for the system informational notifications aredisplayed after the notification messages for the by-the-waynotifications.

Clause 4. The method of any one of clauses 1-3, wherein categorizingeach of the one or more notifications comprises categorizing each of theone or more notifications using a model that is trained on past userinteraction data associated with the computing device or other computingdevices.

Clause 5. The method of any one of clauses 1-4, wherein categorizingeach of the one or more notifications comprises categorizing each of theone or more notifications based at least in part on a notificationsource of that notification.

Clause 6. The method of clause 5, wherein categorizing each of the oneor more notifications comprises categorizing each notification from anapplication that is executing as a foreground process as an important orongoing notification and categorizing all other notifications fromapplications that are not currently executing or are executing asbackground processes not as important or ongoing notifications.

Clause 7. The method of any one of clauses 1-6, wherein categorizingeach of the one or more notifications comprises categorizing each of theone or more notifications based at least in part on content of thatnotification

Clause 8. The method of clause 7, wherein categorizing each of the oneor more notifications comprises categorizing each notification that hascontent related to communications, other than telephone or videocalling, between two people or groups of people as a person-to-personnotification and categorizing each notification that has content relatedto telephone or video calling as an important or ongoing notification.

Clause 9. The method of any one of clauses 1-8, wherein displaying thenotification area comprises not displaying any of the notificationmessages in the notification area in chronological order.

Clause 10. A computing device comprising at least one processorconfigured to perform any one of the methods of clauses 1-9.

Clause 11. A computer-readable storage medium comprising instructionsthat when executed, cause at least one processor of a computing deviceto perform any one of the methods of clauses 1-9.

Clause 12. A computer program product comprising instructions which,when the program is executed by at least one processor of a computingdevice, cause the computing device to carry out any one of the methodsof clauses 1-9.

Clause 13. A system comprising means for performing any one of themethods of clauses 1-9.

Clause 14. A method comprising: receiving, by a computing device, from asource, a notification; determining, by the computing device, content ofthe notification; determining, by the computing device, based at leastin part on the content, a notification badge that reflects the content;determining, by the computing device, whether any other pendingnotifications received by the computing device are associated with thesource; responsive to determining that there are other pendingnotifications received by the computing device are associated with thesource, updating, by the computing device, the notification badge toreflect the content of the notification and content of the other pendingnotifications; displaying, by the computing device, the notificationbadge at or near a graphical element for launching the source of thenotification; detecting, by the computing device, a long-press gesturethat selects the graphical element for launching the source of thenotification; and responsive to detecting the long-press gesture,displaying, by the computing device, a notification preview thatincludes a respective notification message for the notification and anyother pending notifications.

Clause 15. A method comprising: receiving, by a computing device, from asource, one or more notifications; categorizing, by the computingdevice, each of the one or more notifications as either: important andongoing, person-to-person, regular, by-the-way, or system informational;grouping, by the computing device, the one or more notificationsaccording to category; receiving, by the computing device, a user inputfor displaying a notification area of a graphical user interface; anddisplaying, by the computing device, the notification area such that:notification messages for the system informational notifications aredisplayed the least prominent, notification messages for the by-the-waynotifications are displayed more prominent than the notificationmessages for the system informational notifications, notificationmessages for the regular notifications are displayed more prominent thanthe notification messages for the by-the-way notifications, notificationmessages for the person-to-person notifications are displayed moreprominent than the notification messages for the regular notifications,and notification messages for the important and ongoing notificationsare displayed more prominently than the notification messages for theperson-to-person notifications.

Clause 16. A method comprising: receiving, by a computing device, anotification generated by a notification source; determining, by thecomputing device, a set of channels defined by the notification sources,each channel having one or more parameters defined by the notificationsource; determining, by the computing device, a particular channel fromthe set of channels assigned to the notification; determining, by thecomputing device, one or more parameters of the particular channel; andoutputting, by the computing device, an indication of the notificationaccording to the one or more parameters of the particular channel.

Clause 17. A method comprising: displaying, by a computing device, astatus bar of a graphical user interface comprising a set of graphicalelements, each graphical element from the set corresponding to adifferent pending notification from a set of pending notifications;receiving, by the computing device, a gesture that expands anotification shade from the status bar; expanding, by the computingdevice, the notification shade from the status bar such that a size ofthe notification pane is based on a length of the gesture and the set ofgraphical elements is displayed within the notification pane near aleading edge of the notification pane; determining, by the computingdevice, whether a notification message associated with a particularnotification from the set of pending notifications is newly visible inthe notification pane; and responsive to determining that a notificationmessage is newly visible: removing, by the computing device, aparticular graphical element from the set of graphical elements that isassociated with the particular notification; ceasing, by the computingdevice, display of the particular graphical element near the leadingedge of the notification pane; and displaying, by the computing device,the particular graphical element from the set of graphical elements thatis associated with the particular notification within the notificationmessage.

Clause 18. A system comprising means for performing any one of themethods of clauses 14-17.

Clause 19. A computing device comprising at least one processor and amemory comprising instructions that, when executed, cause the at leastone processor to perform any one of the methods of clauses 14-17.

Clause 20. A computer-readable storage medium comprising instructionsthat, when executed, cause at least one processor of a computing deviceto perform any one of the methods of clauses 14-17

Clause 21. A computer program product comprising instructions which,when the program is executed by at least one processor of a computingdevice, cause the computing device to carry out any one of the methodsof claims 14-17.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other storage medium that can be used to store desiredprogram code in the form of instructions or data structures and that canbe accessed by a computer. Also, any connection is properly termed acomputer-readable medium. For example, if instructions are transmittedfrom a website, server, or other remote source using a coaxial cable,fiber optic cable, twisted pair, digital subscriber line (DSL), orwireless technologies such as infrared, radio, and microwave, then thecoaxial cable, fiber optic cable, twisted pair, DSL, or wirelesstechnologies such as infrared, radio, and microwave are included in thedefinition of medium. It should be understood, however, thatcomputer-readable storage mediums and media and data storage media donot include connections, carrier waves, signals, or other transientmedia, but are instead directed to non-transient, tangible storagemedia. Disk and disc, as used herein, includes compact disc (CD), laserdisc, optical disc, digital versatile disc (DVD), floppy disk andBlu-ray disc, where disks usually reproduce data magnetically, whilediscs reproduce data optically with lasers. Combinations of the aboveshould also be included within the scope of computer-readable medium.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated hardware and/or software modules. Also, the techniques couldbe fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

Various embodiments have been described. These and other embodiments arewithin the scope of the following claims.

1. A method comprising: receiving, by a computing device, one or morenotifications; assigning, by the computing device, each of the one ormore notifications to a respective category from a set of categories,the set of categories including an important and ongoing category, aperson-to-person category, a regular category, and a by-the-waycategory; grouping, by the computing device, the one or morenotifications according to the respective categories assigned to the oneor more notifications; receiving, by the computing device, a user inputfor displaying a notification area of a graphical user interface; anddisplaying, by the computing device, the notification area such that:notification messages for the one or more notifications assigned to theby-the-way category are displayed least prominently in the notificationarea relative to other notification messages for any of the one or morenotifications assigned to other categories, notification messages forthe one or more notifications assigned to the regular category aredisplayed more prominently in the notification area than thenotification messages for the one or more notifications assigned to theby-the-way category, notification messages for the one or morenotifications assigned to the person-to-person category are displayedmore prominently in the notification area than the notification messagesfor the one or more notifications assigned to the regular category, andnotification messages for the one or more notifications assigned to theimportant and ongoing category are displayed more prominently in thenotification area than the notification messages for the one or morenotifications assigned to the person-to-person category.
 2. The methodof claim 1, wherein the notification area is a notification shade, andoutputting the notification area for display comprises expanding thenotification shade such that, while expanding the notification shade,the notification messages for the one or more notifications assigned tothe important and ongoing category are displayed before all othernotification messages that are not for the one or more notificationsassigned to the important and ongoing category.
 3. The method of claim2, wherein outputting the notification area for display furthercomprises expanding the notification shade such that, while expandingthe notification shade, the notification messages for the one or morenotifications assigned to the person-to-person category are displayedafter the notification messages for the one or more notificationsassigned to the important and ongoing category, the notificationmessages for the one or more notifications assigned to the regularcategory are displayed after the notification messages for the one ormore notifications assigned to the person-to-person category, and thenotification messages for the one or more notifications assigned to theby-the-way category are displayed after the notification messages forthe one or more notifications assigned to the regular category.
 4. Themethod of claim 1, wherein assigning each of the one or morenotifications to a respective category from the set of categoriescomprises categorizing each of the one or more notifications using amodel that is trained on past user interaction data associated with thecomputing device or other computing devices.
 5. The method of claim 1,wherein assigning each of the one or more notifications to a respectivecategory from the set of categories comprises categorizing each of theone or more notifications based at least in part on a notificationsource of that notification.
 6. The method of claim 5, wherein assigningeach of the one or more notifications to a respective category from theset of categories comprises assigning each notification from anapplication that is executing as a foreground process to the importantor ongoing category and not assigning all other notifications fromapplications that are not currently executing or are executing asbackground processes to the important or ongoing category.
 7. The methodof claim 1, wherein assigning each of the one or more notifications to arespective category from the set of categories comprises categorizingeach of the one or more notifications based at least in part on contentof that notification
 8. The method of claim 7, wherein assigning each ofthe one or more notifications to a respective category from the set ofcategories comprises assigning each notification that has contentrelated to communications, other than telephone or video calling,between two people or groups of people to the person-to-person categoryand assigning each notification that has content related to telephone orvideo calling to the important or ongoing category.
 9. The method ofclaim 1, wherein outputting the notification area for display comprisesnot displaying any of the notification messages in the notification areain chronological order. 10-13. (canceled)
 14. A computing devicecomprising: a display device; one or more processors; and a storagecomponent storing instructions that, when executed by the one or moreprocessors, cause the one or more processors to: receive one or morenotifications; assign each of the one or more notifications to arespective category from a set of categories, the set of categoriesincluding an important and ongoing category, a person-to-personcategory, a regular category, and a by-the-way category; group the oneor more notifications according to the respective categories assigned tothe one or more notifications; and receive a user input for displaying anotification area of a graphical user interface, wherein the displaydevice displays the notification area such that: notification messagesfor the one or more notifications assigned to the by-the-way categoryare displayed least prominently in the notification area relative toother notification messages for any of the one or more notificationsassigned to other categories, notification messages for the one or morenotifications assigned to the regular category are displayed moreprominently in the notification area than the notification messages forthe one or more notifications assigned to the by-the-way category,notification messages for the one or more notifications assigned to theperson-to-person category are displayed more prominently in thenotification area than the notification messages for the one or morenotifications assigned to the regular category, and notificationmessages for the one or more notifications assigned to the important andongoing category are displayed more prominently in the notification areathan the notification messages for the one or more notificationsassigned to the person-to-person category.
 15. The computing device ofclaim 14, wherein the notification area is a notification shade, andwherein the display device further displays the notification area by atleast expanding the notification shade such that, while expanding thenotification shade, the notification messages for the one or morenotifications assigned to the important and ongoing category aredisplayed before all other notification messages that are not for theone or more notifications assigned to the important and ongoingcategory.
 16. The computing device of claim 15, wherein the displaydevice further displays the notification area by at least expanding thenotification shade such that, while expanding the notification shade,the notification messages for the one or more notifications assigned tothe person-to-person category are displayed after the notificationmessages for the one or more notifications assigned to the important andongoing category, the notification messages for the one or morenotifications assigned to the regular category are displayed after thenotification messages for the one or more notifications assigned to theperson-to-person category, and the notification messages for the one ormore notifications assigned to the by-the-way category are displayedafter the notification messages for the one or more notificationsassigned to the regular category.
 17. The computing device of claim 14,wherein the instructions that cause the one or more processors to assigneach of the one or more notifications to a respective category from theset of categories comprise instructions that cause the one or moreprocessors to categorize each of the one or more notifications using amodel that is trained on past user interaction data associated with thecomputing device or other computing devices.
 18. The computing device ofclaim 14, wherein the instructions that cause the one or more processorsto assign each of the one or more notifications to a respective categoryfrom the set of categories comprise instructions that cause the one ormore processors to categorize each of the one or more notificationsbased at least in part on a notification source of that notification.19. The computing device of claim 14, wherein the instructions thatcause the one or more processors to assign each of the one or morenotifications to a respective category from the set of categoriescomprise instructions that cause the one or more processors tocategorize each of the one or more notifications based at least in parton content of that notification, wherein each notification that hascontent related to communications, other than telephone or videocalling, between two people or groups of people is assigned to theperson-to-person category and each notification that has content relatedto telephone or video calling is assigned to the important or ongoingcategory.
 20. A computer-readable storage medium comprisinginstructions, that when executed, cause at least one processor of acomputing device to: receive one or more notifications; assign each ofthe one or more notifications to a respective category from a set ofcategories, the set of categories including an important and ongoingcategory, a person-to-person category, a regular category, and aby-the-way category; group the one or more notifications according tothe respective categories assigned to the one or more notifications;receive a user input for displaying a notification area of a graphicaluser interface; and output one or more commands that cause a displaydevice of the computing device to display the notification area suchthat: notification messages for the one or more notifications assignedto the by-the-way category are displayed least prominently in thenotification area relative to other notification messages for any of theone or more notifications assigned to other categories, notificationmessages for the one or more notifications assigned to the regularcategory are displayed more prominently in the notification area thanthe notification messages for the one or more notifications assigned tothe by-the-way category, notification messages for the one or morenotifications assigned to the person-to-person category are displayedmore prominently in the notification area than the notification messagesfor the one or more notifications assigned to the regular category, andnotification messages for the one or more notifications assigned to theimportant and ongoing category are displayed more prominently in thenotification area than the notification messages for the one or morenotifications assigned to the person-to-person category.
 21. Thecomputer-readable storage medium of claim 20, wherein the notificationarea is a notification shade, and wherein the one or more commands causethe display device to display the notification area by at leastexpanding the notification shade such that, while expanding thenotification shade, the notification messages for the one or morenotifications assigned to the important and ongoing category aredisplayed before all other notification messages that are not for theone or more notifications assigned to the important and ongoingcategory.
 22. The computer-readable storage medium of claim 21, whereinthe one or more commands cause the display device to display thenotification area by at least expanding the notification shade suchthat, while expanding the notification shade, the notification messagesfor the one or more notifications assigned to the person-to-personcategory are displayed after the notification messages for the one ormore notifications assigned to the important and ongoing category, thenotification messages for the one or more notifications assigned to theregular category are displayed after the notification messages for theone or more notifications assigned to the person-to-person category, andthe notification messages for the one or more notifications assigned tothe by-the-way category are displayed after the notification messagesfor the one or more notifications assigned to the regular category. 23.The computer-readable storage medium of claim 20, wherein theinstructions that cause the at least one processor to assign each of theone or more notifications to a respective category from the set ofcategories comprise instructions that cause the one or more processorsto categorize each of the one or more notifications using a model thatis trained on past user interaction data associated with the computingdevice or other computing devices.
 24. The computer-readable storagemedium of claim 2-, wherein the instructions that cause the at least oneprocessor to assign each of the one or more notifications to arespective category from the set of categories comprise instructionsthat cause the one or more processors to categorize each of the one ormore notifications based at least in part on a notification source ofthat notification.